﻿using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Data.SqlClient;
using ECOSYSTEM_Dominio;

namespace ECOSYSTEM_DAL
{
    public class EmpleadoDAL
    {
        SqlConnection cnn;
        public Boolean guardarEmpleado(Empleado elEmpleado) {
              try
            {
                cnn = (SqlConnection)ConexionSQL.getInstancia().getConexion();
                cnn.Open();
                SqlCommand cmd = new SqlCommand("RegistrarEmpleado",cnn);
                cmd.CommandType = CommandType.StoredProcedure;
                cmd.Parameters.Add("@EmpleadoID", SqlDbType.Int);
                cmd.Parameters["@EmpleadoID"].Direction = ParameterDirection.InputOutput; ;
                cmd.Parameters.Add("@DNIEmpleado", SqlDbType.NVarChar,8);
                cmd.Parameters.Add("@Nombre", SqlDbType.NVarChar,50);
                cmd.Parameters.Add("@Apellidos", SqlDbType.NVarChar, 70);
                cmd.Parameters.Add("@Direccion", SqlDbType.Text);
                cmd.Parameters.Add("@NroCelular", SqlDbType.NVarChar,15);
                cmd.Parameters.Add("@RPM", SqlDbType.NVarChar,15);
                cmd.Parameters.Add("@Email", SqlDbType.NVarChar,100);
                cmd.Parameters.Add("@FecReg", SqlDbType.NVarChar,12);
                cmd.Parameters.Add("@AreaID", SqlDbType.Int);
                cmd.Parameters["@EmpleadoID"].Value = elEmpleado.EmpleadoID;
                cmd.Parameters["@DNIEmpleado"].Value = elEmpleado.DNI;
                cmd.Parameters["@Nombre"].Value = elEmpleado.Nombre;
                cmd.Parameters["@Apellidos"].Value = elEmpleado.Apellido;
                cmd.Parameters["@Direccion"].Value = elEmpleado.Dierccion;
                cmd.Parameters["@NroCelular"].Value = elEmpleado.NroCelular;
                cmd.Parameters["@RPM"].Value = elEmpleado.RPM;
                cmd.Parameters["@Email"].Value = elEmpleado.Mail;
                cmd.Parameters["@FecReg"].Value = elEmpleado.FecReg;
                cmd.Parameters["@AreaID"].Value = elEmpleado.ElArea;
                cmd.ExecuteNonQuery();
                elEmpleado.EmpleadoID = (Int32)(cmd.Parameters["@EmpleadoID"].Value);
              }
              catch (SqlException ex) { throw new Exception(ex.Message); }
              catch (Exception e) { throw new Exception(e.Message); }
              finally
              {
                  if (cnn.State == ConnectionState.Open)
                  {
                      cnn.Close();
                  }
              }
              return true;
        }
        //public Boolean ActualizarEmpleado(TEEEmpleado elEmpleado, TEEArea elArea)
        //{
        //    try
        //    {
        //        cnn = (SqlConnection)ConexionSQL.getInstancia().getConexion();
        //        cnn.Open();
        //        SqlCommand cmd = new SqlCommand("ActualizarEmpleado", cnn);
        //        cmd.CommandType = CommandType.StoredProcedure;

        //        cmd.Parameters.Add("@DNI", SqlDbType.NVarChar, 8);
        //        cmd.Parameters.Add("@Nombre", SqlDbType.NVarChar, 50);
        //        cmd.Parameters.Add("@Apellidos", SqlDbType.NVarChar, 70);
        //        cmd.Parameters.Add("@Direccion", SqlDbType.Text);
        //        cmd.Parameters.Add("@NroCelular", SqlDbType.NVarChar, 15);
        //        cmd.Parameters.Add("@RPM", SqlDbType.NVarChar, 15);
        //        cmd.Parameters.Add("@Email", SqlDbType.NVarChar, 100);
        //        cmd.Parameters.Add("@FecReg", SqlDbType.NVarChar,12);
        //        cmd.Parameters.Add("@AreaID", SqlDbType.Int);

        //        cmd.Parameters["@DNI"].Value = elEmpleado.DNI;
        //        cmd.Parameters["@Nombre"].Value = elEmpleado.Nombre;
        //        cmd.Parameters["@Apellidos"].Value = elEmpleado.Apellido;
        //        cmd.Parameters["@Direccion"].Value = elEmpleado.Dierccion;
        //        cmd.Parameters["@NroCelular"].Value = elEmpleado.NroCelular;
        //        cmd.Parameters["@RPM"].Value = elEmpleado.RPM;
        //        cmd.Parameters["@Email"].Value = elEmpleado.Mail;
        //        cmd.Parameters["@FecReg"].Value = elEmpleado.FecReg;
        //        cmd.Parameters["@AreaID"].Value = elArea.IDArea;
        //        cmd.ExecuteNonQuery();
        //    }
        //    catch (SqlException ex) { throw new Exception(ex.Message); }
        //    catch (Exception e) { throw new Exception(e.Message); }
        //    finally
        //    {
        //        if (cnn.State == ConnectionState.Open)
        //        {
        //            cnn.Close();
        //        }
        //    }
        //    return true;
        //}
    }
}
